package a2BDrzewa;

public class BDrzewo {

	public BDrzewo(int stop) {
		stopien = stop;
		korzen = new Wezel(stop, null);
	}
	Wezel korzen;
	int stopien;

	void insert(int liczba) {
		if (korzen.size() == 0) {
			korzen.wstawLiczbe(liczba);
		} else {
			Wezel aktualny = korzen;
			while (aktualny.size() != 0) {
				aktualny = aktualny.gdzieWstawic(liczba);
			}
			Wezel potencjalnyKorzen = aktualny.parent.wstawLiczbe(liczba);
			if (potencjalnyKorzen != null) {
				korzen = potencjalnyKorzen;
			}
		}
	}

protected	Wezel wyszukaj(int liczba) {
		Wezel aktualny = korzen;
		while (aktualny.size() != 0) {
			if (aktualny.ceiling(liczba) == liczba) {
				return aktualny;
			}else
				aktualny = aktualny.gdzieWstawic(liczba);
		}
		return null;
	}

	String search(int liczba){
		if(wyszukaj(liczba)==null)
			return String.format("Liczba %d nie znaleziona", liczba);
		return String.format("Liczba %d wystepuje w drzewie", liczba);
	}

	void delete(int liczba) {
		Wezel miejsce=wyszukaj(liczba);
		if(miejsce!=null){
			miejsce.usun(liczba);
		}
	}

	void print(int liczba) {
		korzen.wypiszWezel(liczba);
	}
}
